Монтажный метод

Монтажный метод

Общее описание

Монтажный метод - особый метод решения обратных задач на потенциальные поля, основанный на ограниченном подборе плотностей.

Говоря упрощённо, монтажный метод подбирает модель среды в виде множества тел и фоновой среды, покрывающих все ячейки сеточной модели среды.

Назовём сеточную модель поля u. Она не обязательно должна быть регулярной, но для удобства работы с наиболее часто встречающимися полями в модуль встроена функциональность для работы с регулярными сеточными моделями полей. Модель среды - также сеточная регулярная модель, M𝔐, 𝔐 - множество моделей (среды), т.е. множество моделей, из которого в ходе работы алгоритма выбирается одна и принимается за решение. Решение определяется как исходными данными, так и параметризацией алгоритма. Определим 𝕍={v} - множество ячеек (точек) сеточной модели среды.

Особенность монтажного метода заключается в классе моделей 𝔐 и способе выбора решения.

Множество 𝔐 определяется как система из двух моделей:

  1. Классовая модель, задающая каждой ячейке идентификатор - целое число, L:𝕍𝕃0. Значение функции L(v) называется меткой класса ячейки; класс - множество ячеек одинаковой метки; он может представлять собой одно тело или множество тел одного типа или генеза.
  2. Плотностное отображение, задающее отображение из пары (ячейка;класс) в значение плотности: D:𝕍×𝕃.

Назовём такую модель классово-плотностной моделью: M=ML,D. Плотностная модель получается применением функции D к ячейкам сетки среды и меткам классов этих ячеек из текущей классовой модели.

Монтажный метод заключается в подборе отображения L с целью минимизации невязки r(M)=|AML,Du|p, где |u|p - норма (величина) вектора u, A - оператор решения прямой задачи. При этом функция M(v,i) (i - номер класса) является параметром и не меняется в ходе оптимизации.

На практике, при решении ряда задач, например, подборе формы одного тела или набора тел, можно использовать монтажный метод, при этом каждому телу, а также фоновой среде (если есть) ставится в соответствие свой идентификатор класса, и каждой ячейке среды ставится в соответствие идентификатор в соответствии с тем, какому телу эта ячейка принадлежит.

Как при решении любой обратной задачи на потенциальные геофизические поля, заданной на сетке, если есть модель среды, имеющее поле, равное исходному полю, то существует бесконечное множество мало похожих моделей, имеющих эксилон-эквивалентное поле. Для монтажного метода на практике чаще всего при заданной параметризации эквивалентной по полю модели не существует, и "решение", получаемое в результате применения монтажного метода, является приближённым в том числе и по невязке.

Принцип подбора

Модель подбирается итеративным методом, т.е. определён оператор Next(Li)=Li+1. Начальное приближение L0 задаётся как часть параметризации метода. Алгоритм останавливается, когда достигается условие остановки - нарушается условие минимума операций (изменений класса ячеек), ограничение на количество шагов, достижение целевого значения невязки.

На каждой итерации, если Next(Li+1)=Li, производится изменение значения идентификатора класса у одной или нескольких ячеек. При изменении значения идентификатора класса ячейки выбор нового значения разрешается производить только из множества значений идентификаторов соседних шести ячеек (вверху, внизу, и 4 по разным сторонам). При этом, если ячейка стала принадлежать классу j, то можно сказать, что класс j "вырос" на одной ячейку; если классу соответствует тело, то - тело выросло на одну ячейку. При перемещении некоторого множества ячеек в один класс можно говорить о том, что класс (тело) растёт в некотором направлении.

Пару соседних ячеек с разными значениями классов на текущем шаге назовёмд дескриптором модификации (или просто модификацией); вторая ячейка в паре является ячейкой - "донором" идентификатора класса, а первая ячейка - "акцептор" и "принимает" его. Если пара μ(v,u) - модификация, то модификацией также является пара (u,v). Будем говорить, что модификация "принята", если на шаге i+1 ячейка-акцептор имеет идентификатор класса, который был у ячейки-донора на шаге i. Если для одной ячейки-акцептора имеется несколько эквивалентных ячеек-доноров, считается, что применяется только одна модификация, но не определено, какая именно.

Имеется возможность устанавливать дополнительные ограничения на модификации: например, запрет на "рост" класса в определённом направлении или в определённую область и др. Эти ограничения можно формировать на основе априорных данных.

Имеется возможность модифицировать приоритет модификаций. В стандартном методе на каждой выбираются для применения те модификации, которые быстрее всего минимизируют невязку (жадный алгоритм). В данном модуле имеется возможность задавать дополнительные модификаторы приоритета так, чтобы модификации выбирались отличные от наискорейше минимизирующих невязку, но при этом тела рости (или уменьшались) в направлении, имеющим некоторое предметное основание.

Алгоритм подбора

В общем виде алгоритм выглядит следующим образом:

  1. Пока условия остановки не достигнуты:
    1. Выбрать множество модификаций, применение которых удовлетворяет условию уменьшения невязки, а также дополнительным ограничениям.
    2. Среди выбранных модификаций выбрать N наиболее приоритетных.
    3. Применить выбранные модификации в порядке приоритета, пока они уменьшают невязку; модификации, не уменьшающие невязку, отбрасываются.

Алгоритм уклоняется от описания, изложенного в предыдущем пункте, в редких и незначительных ситуациях - например, если применение одной более приоритетного модификации изменило значение ячейки-донора другого кандидата. В этом случае второй кандидат либо отбрасывается, т.к. он увеличивает невязку, либо нарушается порядок по приоритету.

Параметризация и пользовательский интерфейс

Файл параметров

Файл параметров содержит в себе параметризацию алгоритма, включая внешние ссылки (на ТОС и др.).

  • Открыть: загрузить параметризацию из файла на форму.
  • Сохранить: сохранить текущую параметризацию в файл.

Общие

Общие настройки включают задание сетки среды, начального приближения и др.

  • Путь к модельной 3D ТОС: путь к ТОС, содержащей начальное приближение. Параметры сетки ТОС определяют параметры сетки среды.
  • Начальное приближение: имя классового свойства в модельной 3D ТОС, содержащее начальное приближение.
  • Нередуцированное поле: включает ли поле постоянную составляющую. Фактически флаг задаёт способ обработки постоянной составляющей поля. Если флаг выключен, считается, что поле задано на горизонтальной поверхности с точностью до константы, и из всех полей (модельных, расчитанных, целевых) вычитается среднее значение. Если флаг задан, поля используются как есть.
  • Норма невязки: используемая норма невязки. L2 норма более чувствительна к выбросам.
  • Параметры расчёта физического поля: тип задачи - гравитационная или магнитная.
  • Область подбора модели задана маской: если флаг включён, то в ходе подбора значение идентификатора класса может поменяться только у тех ячеек, для которых значение свойства маски не равно нулю (то есть, значение маски, эквивалентное логической "истине"). И наоборот, если для ячейки значение маски равно нулю (логическая "ложь"), то для неё значение идентификатора класса не будет затронуто.
  • Имя свойства маски: имя свойства в модельной 3D ТОС, содержащего маску, задающую область оптимизации.
  • Контроллер: разные параметры, не относящиеся непосредственно к процессу оптимизации.

Контроллер позволяет сохранять промежуточные состояния классовой модели среды (Class(e)) в модельную 3D ТОС.

  • Шаблон имён свойств промежуточного состояния: по этого шаблону составляется имя свойства, в которое с модельную 3D ТОС запишется промежуточное состояние модели среды. Шаблон должен включать подстроку "{istep}", которая заменяется на номер текущей итерации (начиная с 1).
  • Смещение для номера шага: если значение задано, то при составлении имени свойства в предыдущем пункте к номеру итерации добавляется это значение.

Смещение для номера шага полезно в случае, если в качестве начального приближения задано промежуточная модель или конечный результат, оставшийся от предыдущего запуска монтажного метода. В этом случае при корректно заданном значении смещения новые свойства для промежуточных результатов не будут перезаписаны. Например, если шаблон для промежуточных свойств имеет значение "interm_{istep}", а начальное приближение записано в свойстве "interm_50", то смещение следует выбирать 50, и тогда будут перезаписаны свойства "interm_60", "interm_70" и другие, а "interm_50", "interm_40" и другие - не будут.

  • Результирующее свойство: в свойство с этим именем будет записана конечная модель, получившаяся при срабатывании условия остановки.
  • Путь к журнальному файлу: в этот файл будет записана журнальная информация, касающаяся прогресса оптимизации. Она полезна при детальной отладке процесса оптимизации. На данный момент должен быть обязательно задан корректный путь к существующему или новому файлу, но содержание файла можно игнорировать. В отличие от других параметров, путь к файлу пока что является абсолютным, и не меняется соответствующим образом при перемещении файла параметров на файловой системе или между компьютерами.

Поле

Поле может быть задано координатной ТОС или двумерной регулярной ТОС.

Координатная ТОС

  • Путь к координатной ТОС: путь к координатной ТОС, содержащей координаты точек поля и значения невязки в точках.
  • Свойство координат X: имя свойства в координатной ТОС, содержащего координаты X.
  • Свойство координат Y: имя свойства в координатной ТОС, содержащего координаты Y.
  • Задать координату Z: если флаг выключен, координата Z считается равной 0.
  • Свойство координат Z: имя свойства в координатной ТОС, содержащего координаты Z.
Невязка

Здесь невязка - разница между целевым полем и полем начального приближения.

  • Невязка: задана невязка.
  • Два поля: задано два поля.
  • Имя свойства: имя свойства, содержащего невязку.
  • Тип невязки: тип невязки.
  • Обычная невязка: чтобы получить невязку, из целевого поля y было вычтено поля начального приближения F(x)=Am0.
  • Антиневязка: наборот, чтобы получить невязку, из поля начального приближения F(x) было вычтено целевое поле y.
  • Целевое поле: имя свойства, содержащего целевое поле.
  • Поле начального приближения: имя свойства, содержащего поле начального приближения.

2D регулярная ТОС

Использование 2D регулярной ТОС позволяет использовать следующие функции:

  • Задание координат точек поля через параметризацию 2D ТОС.
  • Автоматический расчёт поля начального приближения через решение прямой задачи.

ТОС 2D должна быть совместима по привязке с модельной 3D ТОС.

  • Путь к 2D ТОС: путь к 2D ТОС, содержащей целевое поле или невязку.
Способ задания поля
  • Невязка: задано невязку.
  • Целевое поле: задано целевое поле.
Невязка
  • Имя свойства: имя свойства, содержащего невязку.
  • Тип невязки: тип невязки.
  • Обычная невязка: чтобы получить невязку, из целевого поля y было вычтено поля начального приближения F(x)=Am0.
  • Антиневязка: наборот, чтобы получить невязку, из поля начального приближения F(x) было вычтено целевое поле y.
Целевое поле
  • Целевое поле: имя свойства, содержащего целевое поле.
  • Поле начального приближения рассчитывается автоматически.
Маска для поля

Если задана маска для поля, то при расчёте невязки будут использоваться только те точки поля, в которых значение маска - истина.

  • Использовать маску: имя свойства, содержащего целевое поле.
  • Имя свойства маски: имя свойства, содержащего маску для поля.
Прореживание

Прореживание поля отбрасывает точки поля, и они не влияют на расчёт невязки. Значение прореживание должно быть больше или равно 1; если оно равно 1, то прореживания нет. Если значение равно 2, используется 25% точек поля (прореживание производится по каждой из осей oX и oY).

  • Прореживание: значение прореживания.
Экстраполяция
  • Нет: экстраполяция не используется.
  • Зеркальная: при расчёте поля ячейки она отражается по одной из двух ближайших латеральных границ сетки, после чего она и её отражение отражаются от другой границы. В этом случае расчёт поля занимает в среднем в 2-4 раза больше времени.
Сброс кэша невязки

На каждом шаге оптимизации алгоритм хранит текущую невязку под названием "кэш невязки". При модификации значения идентификатора класса кэш суммируется с расчитанным полем от ячейки, класс которой поменялся, таким образом накапливается ошибка невязки. При количестве применённых модификаций, привышающем пороговое значение, невязки рассчитыватся заново через расчёт прямой задачи. Расчёт прямой задачи - длительная операция, и поэтому выбор этого порогового значения является компромиссом между производительностью и точностью подбора.

  • Количество модификаций до сброса кэша невязки: пороговое значение для количества применённых модификаций.
Прочее
  • Расчитать прямую задачу: расчёт прямой задачи и запись в свойство регулярной 2D ТОС.

Приоритет

На этой вкладке задаются модификаторы приоритета. Результат расчёта приоритета умножается на значение уменьшения невязки при применении модификации, и это значение используется далее как приоритет при построении очереди на применение модификаций на текущей итерации.

Формула: priority=|z|zExponenten*nExponentdensityFactor, где zExponent - "Приоритет по глубине", nExponent - "приоритет по соседству" (neighbourhood), densityFactor - множитель нормализации по окрестности, равен 1, если нормализация отключена, а в противном случае densityFactor=|1/(Density(e,j)Density(e,Class(e))|, где e - ячейка-акцептор, j - класс ячейки-донора; если плотности разных классов в этой ячейке равны, модификация отбрасывается, так как он всё равно не меняет невязку.

  • Приоритет по глубине: чем больше приоритет по глубине, тем больший приоритет отдаётся модификациям с ячейкой-акцептором, находящимся на большой глубине. При значении равном 1 или чуть меньше модификации на разной глубине имеют примерно одинаковый приоритет (при прочих равных).
  • Приоритет по окрестности: чем больше приоритет по окрестности, тем больший приоритет отдаётся модификациям с ячейкой-акцептором, имеющим много ячеек-соседей (в окне Linf) с этим же идентификатором. Значение 0.25 или даже 0.05 вполне нормально.
  • Размер окна окрестности: пока рекомендуется брать = 1.
  • Нормализация по разнице плотностей: при выключенном этом флаге модификации, которым соответствует большая разница по плотности, имеют преимущество над модификациями с меньшей разницей, т.к. они быстрее уменьшают невязку. Нормализация уравнивает приоритет модификаций с отличающейся разницей плотностей (при прочих равных).
  • Запись приоритета элементов в ТОС: запись "приоритетов" ячеек в свойство модельной 3D ТОС. Записывается максимальных приоритет среди всех модификаций, для которых данная ячейка является акцептором. Расчитывается для классовой модели - начального приближения. Полезно при исследовании эффекта, который оказывают модификаторы приоритета на процесс оптимизации.

Ограничения

Ограничения задают то, какие модификации могут быть рассмотрены на применение, а какие - отброшены. Доступны следующие ограничения:

Обычные

  • Минимальное количество соседей: отвергаются те модификации , для которых количество соседей ячейки-акцептора с идентификатором класса ячейки-донора меньше указанного количества.

Инвариант соседства

  • Минимальное количество соседей: отвергаются модификации , при применении которых у одной из ячеек количество соседей с ей идентификатором класса будет меньше указанного значения.

Только вертикальные модификации

При использовании этого ограничения доступны только те модификации , для которых ячейка-донор и ячейка-акцептор находятся в сетке одна над другой.

По маске

Эта группа накладывает ограничения, зависящие от маски.

  • Номер класса: идентификатор класса, на который накладываются ограничения
  • Имя свойства маски: имя свойства модельной 3D ТОС, содержащего маску.
  • Вид ограничения: вид задаваемого ограничения. Для простоты обозначим символом Ω множество ячеек, для которых значение маски является истинным (или эквивалентым истинному), и символом Θ - множество ячеек, в которых значение маски - ложь. Смысл значений вида ограничения следующий:
  • Должен находиться в объёме: ячейки из Ω обязаны иметь указанное значение идентификатора класса. На ячейки из Θ ограничение не распространяется.
  • Может находиться только в объёме: ячейки из Θ не могут иметь данное значение идентификатора класса. На ячейки из Ω ограничение не распространяется.
  • Не может находиться в объёме: ячейки из Ω не могут иметь указанное значение идентификатора класса. На ячейки из Θ ограничение не распространяется.
  • Может отсутствовать только в объёме: ячейки из Θ обязаны иметь указанное значение идентификатора класса. На ячейки из Ω ограничение не распространяется.

Плотности

Плотностное отображение задаётся во вкладке Плотности.

  • Тип задания плотностей: необходимо выбрать один из трёх способов задания плотностей: упрощённый, общий и с группировкой классов.

Упрощённый

Упрощённый способ задания плотностей задаёт функцию вида D(v,j)=D(j), то есть плотность всех ячеек одного класса одинаковая. Отображение D(j) задаётся через таблицу (.dbf), в которой один столбец имеет значения идентификаторов классов, а другой - плотностей ячеек класса.

  • Путь к таблице: путь к таблице, задающей отображение класса в значение плотности его ячеек.
  • Идентификаторы классов: имя столбца (атрибута, свойства) таблицы, содержащего идентификаторы классов.
  • Значения плотностей классов: имя столбца таблицы, содержащего значения плотностей ячеек классов.

Столбец идентификаторов может содержать значения идентификаторов классов, которых нет в начальном приближении. Все идентификаторы, присутствующие в начальном приближении, должны присутствовать в таблице один и ровно один раз.

Общий

Общий способ задания плотностей подразумевает задание множества отображений Dj(v), и задание плотностного отображения в виде D(v,j)=Dj(v). Функции Dj(v) обозначают плотности, которые имеют или имели бы ячейки v, если бы они принадлежали классу j.

  • Добавить: добавить запись, соответствующую новому классу (и задать соответствующую ему функцию Dj(v)) в отображении.
  • Редактировать: редактировать запись.
  • Дублировать: дублировать запись. Откроется окно редактирования, но при сохранении создаётся новая запись вместо перезаписи существующей.
  • Удалить: удалить запись.
  • Импортировать из активной сцены: импортировать данные из текущей сцены, соответствующие функции "Подбор плотностной 3D модели".
  • Применить к классовому свойству: прочитать классовое свойство из модельной 3D ТОС, построить плотностную модель и записать её в модельную 3D ТОС.

= Окно редактирования записи

Кнопки "Добавить", "Редактировать" и "Дублировать" открывают окно редактирования записи.

  • Номер класса: идентификатор класса.
  • Имя класса: (опционально) строка, описывающая класс.
  • Способ задания плотности класса: способ задания плотности класса. Один из:
  • Равномерная плотность: в поле Значение плотности записывается плотность ячеек класса.
  • Вертикально равномерная плотность: задаётся путь к 2D ТОС и свойство этой 2D ТОС. Значения свойства в точках 2D ТОС используются как значение плотности ячеек класса во всём столбце, соответствующем этой точке.
  • В объёме: позволяет задать своё значение плотности каждой ячейке по отдельности. Поле Плотности задаёт свойство модельной 3D ТОС, содержащее эти значения плотностей.
  • Из слоистой модели: значения плотностей задаются согласно слоистой модели, записанной в виде свойств 2D ТОС, содержащих высоту (или "минус глубину") границ слоёв и значения плотностей на границах. См.

Сетевая 3D модель по слоям.

  • Относительно другого класса: плотность ячеек класса задаётся относительно плотности опорного класса. номер класса: идентификатор опорного класса. Плотности: это значение будет прибавлено к плотности ячейки опорного класса.

С группировкой классов

Способ задания плотностей с группировкой классов позволяет группировать классы с целью задания всем классам из группы одной функции, отображающей ячейку сетки в значение плотности. Этот способ в целом соответствует общему способу с некоторыми отличиями в виде записей. Главная разница состоит в том, что вместо одного идентификаторов класса задаётся их набор. Набор задаётся в виде перечисления идентификаторов классов. Например, "1,2,7" задаёт классы 1, 2 и 7; "1,5-9,14" - классы 1, 5, 6, 7, 8, 9 и 14. Допускаются пробелы и разбиение на строки.

Прочее

В этой вкладке задаются прочие параметры.

  • Деосцилляция: на данный момент функциональность отключена.

Ограничение на максимальное количество операций за итерацию

Алгоритм, указанный в разделе "Алгоритм подбора", содержит величину N - максимальное количество рассматриваемых кандидатов за одну итерацию. Модуль поддерживает адаптивное изменение величины N по следующему правилу:

  1. Перед первой итерацией N0 равен величине Nhardlimit.
  2. На каждой итерации:
    1. tmp=Ni*(Naccepted*FacceptedNfailedbyresidual*FfailedbyresidualNfailedbysameclass*Ffailedbysameclass),
    2. Ni+1=min(tmp,Nhardlimit, где Naccepted - количество принятых кандидатов, Nfailedbyresidual - количество отвергнутых кандидатов на этапе 1.3 по той причине, что они увеличивают невязку, и Nfailedbysameclass - количество отвергнутых кандидатов по той причине, что ячейка-донор и ячейка-акцептор имеют один и тот же идентификатор класса, а коэффициенты F задаются в текущей вкладке:
  • Коэффициент увеличения макс. кол-ва модификаций (принятые модификации): Faccepted, коэффициент, ответственный за увеличение N при большом количестве принятых модификаций.
  • Коэффициент уменьшения макс. кол-ва модификаций (невязка): Ffailedbyresidual, коэффициент, ответственный за уменьшение N при большом количестве отвергнутых модификаций из-за невязки.
  • Коэффициент уменьшения макс. кол-ва модификаций (тот же класс): Ffailedbysameclass, коэффициент, ответственный за уменьшение N при большом количестве отвергнутых модификаций из-за некорректного идентификатора класса.

Следует понимать, что сбор модификаций может осуществляться паралелльно, однако применение модификаций - последовательный и плохо распараллеливающийся вычислительный процесс. Даже для достаточно больших полей накладные расходы на распаралелливание пересчёта невязки привышают время, затрачиваемое на оценку влияния модификации на невязку. В связи с этим шаг 1.1 алгоритма обходит все модификации параллельно и от того потенциально быстро, а шаг 1.3 производится последовательно на одном вычислительном ядре центрального процессора, и поэтому количество рассматриваемых на этом шаге модификаций следует ограничивать.

По базовой эвристике, наличие большого количества модификаций, отвергаемых по причине невязки, указывает на то, что вычислительная машина производит большое количество вычислений впустую - вместо изменения модели модификации отвергаются. Поэтому N следует уменьшить с надеждой, что большая часть применяемых модификаций находится именно вначале очереди. По опыту применения монтажного метода можно указать на то, что начиная с некоторого шага количество принимаемых модификаций резко уменьшается, а количество отвергнутых из-за невязки - увеличивается, и это можно считать точкой, после которой алгоритм производит мало полезных вычислений.

Условия остановки

  • Цель по норме невязки (относительно изначальной невязки), %: при достижении текущей невязки этой доли от исходной невязки метод останавливается.
  • Макс. количество итераций: при выполнении итерации с указанным номером алгоритм завершается.
  • Мин. количество принятых модификаций за шаг: алгоритм завершается, если в течение M шагов количество принятых модификаций было меньше указанного.
  • За N шагов подряд: величина M.

О применении монтажного метода

Классы задач

Возмущающее тело

Пусть требуется найти параметры тела (например, рудного) в некоторой известной среде. Постановка задачи в контексте монтажного метода может выглядеть следующим образом: при определённых плотностных моделях среды 0 - D(e,0) и класса 1 - D(e,1) найти геометрию, удовлетворяющую заданному полю u.

Для решения этой задачи монтажным методом необходимо предварительно подготовить данные поля u~=Prepare(u). В соответствии с механизмом действия монтажного метода, если поле может быть полностью описано какой-то классовой моделью L´, то поле такой модели должно быть равно подготовленному AML,D=u~ (или хотя бы очень близко к нему). Отсюда следует, что поле u~ должно быть равно сумме двух полей - поля среды и поля возмущающего тела: Prepare(u)=u(E)+[AM0,D]. В свою очередь, поле возмущающего тела u(E) необходимо выделить из исходного поля u.

Это - нетривиальная задача, которую можно решить в некоторых частных случаях. Например, если можно визуально отделить возмущение поля от тела, то можно записать в ТОС маску M=i, соответствующую пятну, создать новое поле u´(i) такое, что u´(i)=u(i)|iM (вне маски) и u´(i) - неопределено в маске, далее заполнить неопределённые значение, используя функцию Экстраполяции_поля уравнением Лапласа. Тогда разница u^=uu´ содержит, в основном, составляющую от возмущающего тела. Можно использовать оценку u~:=u^. При этом следует устанавливать флаг "Абсолютное поле" истинным и учитывать, что такая оценка несколько недооценивает величину возмущения поля. Такой учёт можно делать как на этапе интерпретации результата (в этом случае размер возмущающего тела является недооценённым), либо на этапе оценки: u~:=u^+u˘, где u˘ - поправка на недооценку. Определение поправки u˘ является отдельной задачей. Например, её можно получать путём обработки поля от тела, полученного монтажным методом при использовании оценки u~:=u^. Тогда мы получаем итеративную процедуру, где на шаге i имеем u~i+1:=u^i+u˘(AML,D), где ML,D - классово-плотностная модель, полученная на i-м шаге.

Построение класса классово-плотностных модели

Монтажный метод подразумевает построение класса классово-плотностных модели, определяющийся двумя сущностями:

1) Множество отображений (плотностных моделей) Dj(v) для идентификатора j из множества элементов в множество значений плотности.

2) Множество классовых моделей Li, где i - номер шага оптимизации, при этом L0 - начальная (исходная) модель среды.

Различные сочетания плотностных моделей и классовых моделей образуют класс (множество) возможных классово-плотностных моделей. Монтажным методом ищется решения именно в этом классе. Соответственно, возможность найти приемлемое решение (или близкое к реальному) напрямую зависит от адекватности этого класса моделей. Говоря по-другому, необходимо задавать плотности Dj(e) так, чтобы существовала такая классовая модель L, которая могла бы адекватно описать плотностное строение территории.

Переменная плотность внутри зоны

Важное ограничение связано с видом плотностного отображения. Само значение плотности ячейки v в классово-плотностной модели зависит исключительно от выбранной ячейки и идентификатора класса, и не может зависеть от значений классовой модели других ячеек, в том числе соседних. Предположим, что требуется смоделировать область дробления, при этом плотность уменьшается к центру области и увеличивается к её краям (то есть, имеется граниент плотности). Смоделируем зону дробления как один класс i внутри однородной среды. Тогда градиент плотности должен быть определён через плотностное отображение Di(e). Однако в этом случае при перемещении этого класса (зоны дробления) на несколько ячеек целиком определённые через D плотности не перемещаются, то есть получается ситуация, при которой плотности ячеек не изменились, хотя класс переместился. В этом случае получившийся класс уже не моделирует зону дробления.

Список литературы

1. Мицын, С. В., Большаков Е. М. Монтажный метод в ГИС INTEGRO и его использование для решения обратной гравитационной задачи // Геоинформатика. 2021. № 3. C. 36–47.